// pages/uploadStandPhoto/index.js
import {
  envList
} from "../../envList.js";
import Dialog from '@vant/weapp/dialog/dialog';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    fileList: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {
    await this.queryStandPhoto();
  },
  afterRead(e) {
    const {
      file
    } = e.detail;
    const filePath = file.url.split("/").pop();
    const timestamp = Date.parse(new Date());
    const cloudPath = 'standPhoto/' + filePath;
    wx.cloud.uploadFile({
      // 指定上传到的云路径
      cloudPath: cloudPath,
      // 指定要上传的文件的小程序临时文件路径
      filePath: file.url,
      // config: {
      //   env: envList[0].envId
      // }
    }).then(async (res) => {
      await this.uploadFileDb(filePath, res.fileID);
      await this.queryStandPhoto();
    })
  },
  // 查询标准图片
  async queryStandPhoto() {
    await  wx.hideToast()
    wx.showLoading({
      title: '正在加载',
      mask:true
    })
    return new Promise((resolve, reject) => {
      getApp().globalData.wxCloudRequest({
        type: "queryStandPhoto",
      }).then((res) => {
        resolve(res);
        this.setData({
          fileList: res.result.data.map((item) => {
            return {
              url: item.filePath,
              name: item.fileName,
              id:item._id
            }
          })
        })
        wx.hideLoading()
      }).catch((err) => {
        reject(err);
      })
    })
  },
  // 讲文件地址上传存进数据库
  uploadFileDb(fileName, filePath) {
    const params = {
      fileName: fileName,
      filePath: filePath
    }
    return new Promise((resolve, reject) => {
      getApp().globalData.wxCloudRequest({
        type: "uploadPhoto",
        ...params
      }).then((res) => {
        resolve(res);
      }).catch((err) => {
        reject(err);
      })
    })
  },
  delFileDb(filePath,fileId){
    wx.showLoading({
      title: '正在删除',
      mask:true
    })
    // 先去删除云存储资源
    wx.cloud.deleteFile({
      fileList:[filePath]
    }).then(async (res)=>{
      // 删除数据库列表
      await getApp().globalData.wxCloudRequest({
        type:"delStandPhoto",
        id:fileId
      })
      await wx.hideLoading();
      await wx.showToast({
        title: '删除成功',
        icon:"success",
        mask:true
      })
      this.queryStandPhoto();
    })
  },
  // 删除图片
  deletePhoto(e){
    Dialog.confirm({
      title: '',
      message: '是否删除这张图片'
    }).then(()=>{
      this.delFileDb(e.detail.file.url,e.detail.file.id);
    }).catch(()=>{})
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})